<?php 
class Calender_model extends CI_Model {
    function __construct() {
        parent::__construct();
        $this->load->database();
    }
    /********** Hàm thiết lập ngày giờ làm việc
     * Trường hợp dữ liệu rỗng (begin và end), nếu ngày thiết lập đã có -->Xóa
       Dữ liệu ko rỗng, ngày thiết lập đã có --->Xóa rồi ghi đè vào
                Dữ kiệu ko rỗng, ngày chưa có -->ghi vào
     ***********/
    function set_days($id,$days,$begin,$end){
        //print_r($days);
        foreach ($days as $day) {
            if($begin!='' && $end != ''){
                if($this->check_time_is_available($id, $day,$begin)){
                   $this->db->delete('tbldays',array('day'=>$day,'calenderid'=>$id));
                }
                $data = array (
                'day' => $day,
                'calenderid' => $id,
                'begin' => $begin,
                'end' => $end
                );
                $this->db->insert('tbldays',$data);
            }else {
                if($this->check_time_is_available($id, $day,$begin)){
                    $this->db->delete('tbldays',array('day'=>$day,'calenderid'=>$id));
                }
            }     
        }
    }
    
    //Hàm kiểm tra thời gian làm việc có tồn tại(true) hay không(false)
    /***
     *Ví dụ thứ 2 lịch làm việc a, bắt đầu 8,0 kết thúc 12,0; tiếp tục bắt đầu 1,0 và kết thúc 5,0
     * Nếu lần bắt đầu thứ hai < 12.0 là sai (trả về true, mình xóa lịch cũ, ghi đè lên lịch mới) 
     ***/
    function check_time_is_available($calender_id,$date,$begin){
        $query = $this->db->query("SELECT `end` FROM `tbldays` 
                                   WHERE `day`= $date 
                                   AND `calenderid`= $calender_id");
        if($query->num_rows>0){
            $arr = $query->result_array();
            if($begin>$arr[0]['end']) return false;
            else return true;
        } else {
            return false;
        }
    }
    
    function get_cal($cal_id){
        $this->db->select();
        $this->db->from('tbldays');
        $this->db->where('calenderid',$cal_id);
        $this->db->order_by('day asc, begin asc');
        $query = $this->db->get();
        return $query->result_array();
    }
    function get_name($id){
        $this->db->select('name');
        $this->db->from('tblcalenders');
        $this->db->where('id',$id);
        $query = $this->db->get();
        $arr = $query->result_array();
        return $arr[0]['name'];
    }
    function getall(){
        $this->db->select();
        $this->db->from('tblcalenders');
        $query = $this->db->get();
        return $query->result_array();
    }
    function get_cal_work($id){
        $this->db->select();
        $this->db->from('tblcalenders');
        $this->db->where('id',$id);
        $query = $this->db->get();
        return $query->result_array();
    }
    function get_cal_works(){
        $this->db->select();
        $this->db->from('tblcalenders');
        $query = $this->db->get();
        return $query->result_array();
    }
}
?>
